A. Field of the Invention
The present invention relates generally to computer networks. More particularly, this invention relates to the creation and use of command-language-based (CLB) services in the context of a graphical-based service system.
B. Description of the Related Art
In response to societal demand, computer networks have been proliferating rapidly in recent years. Such networks include local area networks (LANS) and wide area networks (WANS) comprising a number of computers that may communicate with one another. Apart from sending messages, this communication between networked computers allows programs to be run on more than one computer in a network. For example, a graphical-based service, such as a World Wide Web airline reservation service, may present a user interface (UI) on a client computer while data input to the interface is transmitted to a server computer where a reservation database is accessed. This type of program execution, known as distributed programming, may be much more complicated than the above example but is nonetheless extremely common and efficient.
FIG. 1 shows an embodiment of the graphical-based services system of the present invention. The system includes a back-end server 102, a front-end client computer network 108, and a system administration station 116. The server 102, the network 108, and the station 116 are interconnected via the Internet 106 (or other such wide area network) or via a local area network. The server includes a software module, referred herein as a generic service provider (GSP) 104, that provides graphical-based services to clients in the computer network 108. The server 102 is a computer with sufficient capacity to support or serve a series of other computers connected to the server 102, in this case through the Internet 106, in a timely and efficient fashion.
The front-end computer network 108 includes at least one workstation 112 running a front-end application, and additional workstations 110. Workstations 110 and 112 are computers in the network and are capable of communicating with one another as well as with the server 102. A person of ordinary skill would recognize that the system administrator station 116 can be part of the network 108, the server 102, or a network that includes the server 102. Furthermore, the system administrator can also perform administration tasks from several workstations in the network 108, as well as from server 102. A person of ordinary skill in the art would also recognize that any workstation in the network 108, in the network of server 102 or the system administration station 116 is capable of running the front-end application.
The front-end application is a computer program that allows the user of workstation 112, for instance, to access the graphical based services provided by the GSP 104. An example of a front-end application is a Web browser. Another type of front-end application referred hereinto is one run in the system administrator workstation 116, which enables the creation of the CLB service by the system administrator (service creator).
A CLB service is a service that invokes a command from a set of commands (e.g., UNIX commands) in order to provide a certain type of service to a user (e.g., the xe2x80x9cprintxe2x80x9d command would support a printing service). In the present example, the set of commands could be on the server 102 or other servers on the same network as server 102, as well as in the workstations (110, 112 or 116) in the computer network as long as the location of the command is specified.
For purposes of illustrating the functionality of the system of FIG. 1, as applied in the present invention, a system that provides document-based services has been designated as the graphical-based services system. A document-based service is a service that takes one or several documents as input and produces one or several documents as output.
The GSP 104 supports the graphical-based service by displaying to a user of the service a list of available services. This list is displayed via a UI (main menu UI 120 displayed in workstation 112). Main menu UI 120 could be a conventional graphical user interface that is updated by the back-end server 102 or by the front-end application program, being run in the workstation 112, to contain the services currently available in the GSP 104. In FIG. 1, three services are shown. At this point in the discussion, it is assumed that the first two service options, document reduction and enlargement, are properly registered in the GSP 104. Furthermore, the third option, document translation, will be explained in greater detail below in order to illustrate the conventional problems that arise in the addition of new services.
Once the services are made available, the user requests a service via the main menu UI 120, and the front-end application makes a service call to the GSP 104 accordingly. The GSP 104 then executes the service requested.
A particular example of the problems related to the existing art follows. The graphical-based services are registered in the GSP 104. The user of workstation 112 runs a front-application that presents the services that are available via a UI 120. If the user chooses the document reduction service (i.e., the user inputs a document into the system that is to be reduced) the user points at option 1 in the UI 120. Once the user points at that option from the menu in the UI 120, the front end application program makes a call to the GSP 104, in order to have the generic provider perform the service (reduction) on the user""s document. The service that is offered to the user via the UI 120 can be based on a command from a command language set.
Assuming that a user of one of the additional workstations 110, not running the front-end application, does not have access to the graphical-based system, but instead knows of a Unix command that performs the reduction of documents by accepting as input (argument) the desired document and a reduction factor, the user could type in that command at the Unix system prompt and thus, could achieve the desired document reduction outside the context of the graphical-based system. The advantage of requesting a document reduction service in the context of a graphical-based service system is that the user does not need to be familiar with Unix commands (a service creator would have to be familiar) and does not need to have a computer running the Unix operating system. In addition, the document reduction service could be fluidly composed with other services available within the system. Nonetheless, the graphical-based services system can perform the reduction function by using the Unix command without requiring the end-user to even know what Unix command is being used. Thus, the service, as offered through the graphical-based services system, is based on a Unix command.
In designing a graphical-based system it is difficult to anticipate all of the services that users might wish to use. In particular, users of CLB systems (e.g., Unix) may already accomplish some tasks outside of the service-based system by using established commands and scripts, as implied above. Adding CLB services to a graphical-based services system has conventionally been troublesome.
An example of such a CLB service addition in the context of the graphical-based service system follows. Assuming that a translation service based on a command within a command language, option 3 in the UI 120, is to be added to the graphical-based service system by the system administrator, the administrator has to go through several steps. First, the system administrator has to locate, for example, an existing Unix program, command or script to perform natural language translation of a document. The new service is based upon this existing Unix command/program. To add the translation service to the graphical-based system, the system administrator must create the service by programming and have the service call on the Unix program. In this context, xe2x80x9cservicexe2x80x9d refers to the CLB service screen that would be presented to the user once the user chooses the translation option from the UI 120. This requires not only that the system administrator possess good programming skills or learn a new programming language, but that he or she spend a considerable amount of time in incorporating the new service to the graphical-based system.
System security is a problem associated with the creation of CLB services in the context of a graphical-based service system, and in particular, of allowing a system administrator to create the CLB services by programming. In deploying a graphical-based services system, it is expected that the system is to be used by a variety of users, some of whom may be malevolent (e.g., hackers). In a graphical-based services system that allows access to system commands on server 102 (via GSP 104), this could pose a security threat. Malevolent users could attempt to force the graphical-based services system to execute dangerous commands (e.g., xe2x80x9crmxe2x80x9d, which removes files) or to consume too many resources.
As discussed above, services such as the document reduction service have been implemented by using programs/commands that are available on server 102 (or on the user workstations 110, 112, 116 or any server accessible on the network of server 102). However, creating a new command-based service requires programming, including taking security precautions that are similar for each new command-based service that is created.
Thus, there is a need in the art for a system that provides the capability to incorporate new CLB services into a graphical service-based system in a timely manner and without the need of extensive programming by the service creator.
Accordingly, it is an object of the present invention to meet the foregoing needs by providing systems and methods for creating secure CLB services in the context of a graphical-based services system.
Specifically, systems and methods for meeting the foregoing needs are disclosed. The method includes the steps of creating a structured representation of the command-language-based service by using information entered by a service creator via a first user interface; registering the command-language-based service with a generic service provider, the generic service provider being a software module that provides command-language-based services as part of the graphical-based services system; and creating a second user interface corresponding to the command-language-based service created.
Both the foregoing general description and the following detailed description provide examples and explanations only. They do not restrict the claimed invention.